<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Modulos extends ControladorKakoonAdmin
{
	public function __construct()
	{
		parent::__construct();
	}

	public function getBaseUrl()
	{
		return "/administracion/modulos/";
	}

	public function getObjetoDatos($identificador = Datos::NO_PERSISTIDO)
	{
		return new ModuloKakoon(getAccesoBD(), $identificador);
	}

	public function instalacion()
	{
		formulario();
		$this->load->model ("gestor_modulos_kakoon_model");
			
		$DS = DIRECTORY_SEPARATOR;
		$GLOBALS["FORMULARIO_TMP_UPLOAD"]  = dirname(__FILE__) . $DS . "..". $DS ."..". $DS . "..". $DS ."temporal". $DS;

		$formulario = new Formulario("instalacion_modulos");
        $formulario->setTitulo ("Instalacion Nuevo Modulo");
		$formulario->creaCampo(FactoriaCamposFormulario::ARCHIVO, "modulo", "Seleccione Modulo (.zip)");
		$formulario->setRequerido("modulo");
		$formulario->popula();

		if ($formulario->datosValidos())
		{
			$gestor      = new Gestor_Modulos_Kakoon_Model();
			$archivo     = $formulario->getValor ("modulo");
			$instalado   = $gestor->instalaModulo($archivo);

			redirect (site_url($this->getBaseUrl()));
			exit();
		}

		$modelo = array();
        $modelo["contenido"] = $formulario->creaFormulario(site_url($this->getBaseUrl()."instalacion"));

		$this->vista($modelo);
	}

	public function estado ($identificador)
	{
		$modulo = $this->getObjetoDatos($identificador);
		$estado = ConstantesKakoon::SI;
			
		if ($modulo->estaActivo())
		{
			$estado = ConstantesKakoon::NO;
		}
			
		$modulo->setPropiedad ("activo", $estado);
		$modulo->consolida();
			
		redirect (site_url($this->getBaseUrl()));
		exit();
	}

	public function desinstalar ($identificador)
	{
		$this->load->model ("gestor_modulos_kakoon_model");
		
		$modulo = $this->getObjetoDatos($identificador);
        $gestor = new Gestor_Modulos_Kakoon_Model();
        $gestor->purgaModulo($modulo);

		redirect (site_url($this->getBaseUrl()));
		exit();
	}

	public function getParametrosFormulario ($identificador = Datos::NO_PERSISTIDO)
	{
		$anulados   = array ("activo", "posicion");
		$parametros = new ParametrosFormularioKakoon($anulados);

		return $parametros;
	}

	public function getParametrosListado()
	{
		$botones    = array();
		$anulados   = array ("activo", "base", "url");
		$noFiltrar  = array ("activo", "base", "url");

		array_push ($botones, new AccionBotoneraEstadoModuloKakoon("Estado",              site_url($this->getBaseUrl()."estado")."/",     "Desea realmente cambiar el estado del modulo seleccionado??"));
		array_push ($botones, new AccionBotoneraConfirmacion      ("Desinstalar",         site_url($this->getBaseUrl()."desinstalar")."/","Desea realmente desinatalar el modulo seleccionado??"));

		$parametros = new ParametrosListadoKakoon($botones, array(), $anulados, $noFiltrar);

		return $parametros;
	}
}
/* End of file administracion/modulos.php */
/* Location: ./application/controllers/administracion/modulos.php */